package com.gitee.magic.jdbc.persistence.source.jdbc.sqlplus.conditions;

import com.gitee.magic.jdbc.persistence.source.jdbc.sqlplus.conditions.segments.MergeSegments;
import com.gitee.magic.jdbc.persistence.source.jdbc.sqlplus.toolkit.EmptyUtils;

/**
 * <p>
 * 条件构造抽象类
 * </p>
 *
 * @author Start
 */
public abstract class BaseWrapper implements ISqlSegment {

    /**
     * 查询条件 SQL 片段（子类实现）
     */
    public String getSqlSelect() {
        return null;
    }

    /**
     * 更新 SQL 片段（子类实现）
     */
    public String getSqlSet() {
        return null;
    }

    /**
     * 获取 MergeSegments
     * @return
     */
    public abstract MergeSegments getExpression();

    /**
     * 查询条件为空(包含entity)
     */
    public boolean isEmptyOfWhere() {
        return isEmptyOfNormal();
    }

    /**
     * 查询条件不为空(包含entity)
     */
    public boolean nonEmptyOfWhere() {
        return !isEmptyOfWhere();
    }

    /**
     * 查询条件为空(不包含entity)
     */
    public boolean isEmptyOfNormal() {
    	return EmptyUtils.isEmpty(getExpression().getNormal());
    }

    /**
     * 查询条件不为空(不包含entity)
     */
    public boolean nonEmptyOfNormal() {
        return !isEmptyOfNormal();
    }

}
